8. Навигация
Создайте веб-страницу с header (шапкой), которая будет содержать логотип и навигационное меню. В меню будут такие пункты, как Главная, О нас, Услуги, Контакты. Все элементы должны быть выровнены по горизонтали и эстетично стилизованы.
Шаг 1. Создаём HTML-файл
Цель: Создать структуру страницы и разметку header.
- Создайте файл с именем
index.html
. - Вставьте следующий код:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Пример шапки с навигацией</title>
<link rel="stylesheet" href="styles.css"> <!-- Подключаем файл стилей -->
</head>
<body>
<!-- Шапка с логотипом и навигацией -->
<header>
<div class="logo">
<h1>Мой Сайт</h1> <!-- Логотип сайта -->
</div>
<!-- Навигационное меню -->
<nav>
<ul class="nav-menu">
<li><a href="#home">Главная</a></li>
<li><a href="#about">О нас</a></li>
<li><a href="#services">Услуги</a></li>
<li><a href="#contacts">Контакты</a></li>
</ul>
</nav>
</header>
<main>
<h2>Добро пожаловать на наш сайт!</h2>
<p>Здесь вы найдёте полезную информацию о нас и наших услугах.</p>
</main>
</body>
</html>
Что здесь происходит?
<header>
— Секция "шапка" страницы, которая включает логотип и навигацию.<div class="logo">
— Контейнер для логотипа. Здесь мы используем простой текстовый логотип, но в реальных проектах можно добавить изображение.<nav>
— Содержит навигационное меню.<ul class="nav-menu">
— Это список навигации, а теги<li>
представляют собой пункты меню.<a href="#">
— Ссылки на разделы страницы. Знак#
— это якорная ссылка, которая позволяет ссылаться на разделы внутри текущей страницы.
Шаг 2. Стилизация навигации через CSS
Цель: Стилизовать шапку и навигацию, чтобы сделать её красивой и удобной для пользователя.
- Создайте файл с именем
styles.css
в той же папке, где находитсяindex.html
. - Вставьте следующий CSS-код:
/* Стили для всего документа */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
background-color: #f4f4f9;
color: #333;
line-height: 1.6;
}
/* Стили для шапки */
header {
display: flex; /* Делаем flex-контейнер */
justify-content: space-between; /* Разделяем логотип и меню по краям */
align-items: center; /* Выравниваем элементы по вертикали */
padding: 20px;
background-color: #009879; /* Цвет фона шапки */
color: white; /* Цвет текста */
box-shadow: 0 2px 10px rgba(0,0,0,0.1); /* Лёгкая тень */
}
/* Стили для логотипа */
.logo h1 {
font-size: 24px;
font-weight: bold;
}
/* Стили для навигации */
nav ul.nav-menu {
display: flex; /* Горизонтальное расположение пунктов меню */
list-style: none; /* Убираем маркеры списка */
}
nav ul.nav-menu li {
margin-right: 20px; /* Отступ между элементами меню */
}
nav ul.nav-menu li:last-child {
margin-right: 0; /* Убираем отступ у последнего элемента */
}
nav ul.nav-menu a {
text-decoration: none; /* Убираем подчёркивание */
color: white; /* Цвет текста */
font-size: 18px;
transition: color 0.3s ease; /* Эффект изменения цвета при наведении */
}
nav ul.nav-menu a:hover {
color: #f4f4f9; /* Цвет при наведении */
}
Что здесь происходит?
- *`
(универсальный селектор)** — Сбрасывает отступы и изменяет
box-sizing` для всех элементов. header
— Flex-контейнер для размещения логотипа и меню по сторонам.display: flex
— Используется для горизонтального выравнивания элементов (logo
иnav
).justify-content: space-between
— Разделяет логотип и навигацию по разным сторонам.align-items: center
— Центрирует элементы по вертикали.nav ul.nav-menu
— Flex-контейнер для элементов меню.list-style: none
— Убирает маркеры списка.nav ul.nav-menu a
— Стилизация ссылок меню. Убираем подчёркивание и добавляем переход на изменение цвета.